/*
 * MapaPiezasProducto.cpp
 *
 *  Created on: 24/11/2013
 *      Author: gonzalo
 */

#include "MapaPiezasProducto.h"

const std::string MapaPiezasProducto::RESOURCE_COMPOSICION_PRODUCTO_PATH = "./resource/ProductoPiezas.ini";

MapaPiezasProducto::MapaPiezasProducto() {
}

ProductoPiezasMap MapaPiezasProducto::obtenerPiezasYCantidad(TipoProducto tipo) {
	ProductoPiezasMap piezas;
	MapaIni ini = ArchivoIni::parsearComoIni(RESOURCE_COMPOSICION_PRODUCTO_PATH);
	std::string sPiezasCantidad = ini.at(StringUtils::itos(tipo));

	// Obtengo un vector des strings de la forma "pieza,cantidad"
	std::vector<std::string> vecPiezasCantidad = StringUtils::splitString(sPiezasCantidad, '/');
	std::vector<std::string>::iterator it;
	for (it = vecPiezasCantidad.begin(); it != vecPiezasCantidad.end(); it++) {
		std::vector<std::string> vecPiezaCant = StringUtils::splitString(*it, ',');
		std::string sPieza = vecPiezaCant[0];
		std::string sCantidad = vecPiezaCant[1];
		TipoPieza pieza = atoi(sPieza.c_str());
		int cantidad =  atoi(sCantidad.c_str());
		piezas.insert(std::pair<TipoPieza, int>(pieza, cantidad));
	}
	return piezas;
}

void MapaPiezasProducto::mostrarPiezasPorTipo(TipoProducto tipo) {
	ProductoPiezasMap map = MapaPiezasProducto::obtenerPiezasYCantidad(tipo);
	ProductoPiezasMap::iterator it;
	for (it = map.begin(); it != map.end(); it++) {
		std::cout << "Pieza " << it->first<< " cantidad " << it->second << std::endl;
	}
}

MapaPiezasProducto::~MapaPiezasProducto() {
}
